/**
 *	@file	safaril_sys.h
 *	@brief	サファリレイアウトツール　システムヘッダ
 *	@author	Miyuki Iwasawa
 *	@date	08.03.13
 */

#ifndef __H_SAFARIL_SYS_H__
#define __H_SAFARIL_SYS_H__

#include "safari/safari_sys.h"
#include "savedata/safari_sv.h"
#include "system/touch_subwindow.h"
#include "safario_def.h"
#include "safario_snd_def.h"
#include "safario_3d.h"

typedef struct _SAFARIO_MSG{
	MSGDATA_MANAGER *man;
	WORDSET* wset;		//ワーク
	STRBUF	*tmp;		//汎用
	STRBUF	*str;		//汎用
	STRBUF	*exp[MSGIDX_EXP_MAX];		///<説明文
	STRBUF	*page;	///<ページ
	STRBUF	*back;	///<もどる
}SAFARIO_MSG;

typedef struct _SAFARI_OBJ_LIST{
	u8	id;
	u8	siz;
	SAFARI_OBJ_PARAM prm;
}SAFARI_OBJ_LIST;

///サブプロセス定義用関数型
typedef struct _SAFARIO_WORK	SAFARIO_WORK;

///サファリレイアウトツール　ワーク
struct _SAFARIO_WORK{
	int heapID;	///<heapID
	int	seq;	///<seq_no
	int	sub_seq;	///<sub_seq_no
	int	next_seq;

	int key_mode;	///<操作モード
	int	tcb_ct;

	u8	msg_spd;
	u8	win_type;
	u8	now_block;		///現在のブロックナンバー
	SAFARI_LTPARAM		*param;
	SAFARI_SAVE*		safari_sv;
	SAFARI_LAYOUT		layout;
	SAFARIO_MSG			msg;

	SAFARI_OBJ_LIST*	obj;
	SAFARIO_3DWORK		sys3d;

	u8					anm_time_zone;	//アニメーションのためのタイムゾーン

	u8					list_max;	//リストmax
	u8					page_max;	//ページmax
	u8					cpage_max;	//カレントページのアイテム数
	u8					page;
	u8					pos;
	u8					target;
	u8					target_obj;
	u8					mdl_chg_req;
	u8					rest_obj;

	GF_BGL_INI			*bgl;

	CATS_SYS_PTR	pActSys;	///<セルアクターシステム
	CATS_RES_PTR	pActRes;	///<セルアクターリソース

	CLACT_WORK_PTR		pAct[SAFARIO_ACTMAX];		///<アクター

	GF_BGL_BMPWIN		win[WIN_MAX];

	//選択ボックスリスト
	TOUCH_SW_SYS*	ynbtn_wk;

	///グラフィックリソース
	void*	pSBufParts;
	NNSG2dScreenData*	pSParts;
	void*	pSBufBg01;
	NNSG2dScreenData*	pSBg01;
	void*	pSBufBg02;
	NNSG2dScreenData*	pSBg02;

};

#endif	//__H_SAFRIL_SYS_H__
